// pages/search/index.js
/*
1.输入框绑定  输入值改变事件 input事件
  1.获取到输入框的值
  2.合法性判断
  3.检验通过 把输入框的值 发送到后台
  4.返回的数据
2.防抖  (防止抖动)
  输入稳定之后才开始发送请求
  1.定义全局的定时器
*/

//引入 发送网络请求的方法
const http = require('../../utils/http.js');
import regeneratorRuntime from '../../lib/runtime/runtime'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    inputValue:'',//输入框的值
    goodsList:[],
    isFocus:false//取消按钮是否显示
  },
  TimeId:-1,
  // 获取商品列表数据
  async getGoodsList(value){
    let url = '/goods/qsearch'
    let query={query:value}
    let { message: res } = await http.get(url,query)
    console.log(res)
   
    //console.log(this.totalPages)
    this.setData({
      goodsList:res  //  利用解构 .将返回的新数据和goodslist数组中的数据进行拼接
    })
   
  },
  handleCancel(){//点击取消
    clearTimeout(this.TimeId)//清除定时器
    let isFocus=false
    let inputValue=''
    this.setData({
      inputValue,
      isFocus,
      goodsList:[]
    })

  },
  handleInput(e){//输入框的值改变  就会触发的事件
    //1.获取到输入框的值
    const {value}=e.detail
   
    console.log(value)
    //2.检测合法性
    if (!value.trim()) {
      //值不合法      
      return false;      
    }
    let isFocus=true
    this.setData({     
      isFocus
    })
    //3.准备发送请求
    clearTimeout(this.TimeId)//清除定时器
    this.TimeId=setTimeout(()=>{ //开启定时器， 1秒钟后发送请求
      this.getGoodsList(value)
    },1000)
    

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log(this.data.isFocus)

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})